#include "inicializacao.h"

int geraID (int queObjeto)
{
    static int VACAID = 0;
    static int ALDEAOID = 0;
    static int ARVOREID = 0;
    if (queObjeto == nArvore)
    {
        ARVOREID++;
        return ARVOREID;
    }
    if (queObjeto == nVaca)
    {
        VACAID++;
        return VACAID;
    }
    if (queObjeto == nAldeao)
    {
        ALDEAOID++;
        return ALDEAOID;
    }
}

int criaObjeto (int x, int y, int queObjeto, vector<VACA> &vacas, vector<ARVORE> &arvores, vector<CIDADAO> &aldeoes, ONIBUS townCenter, vector <BARRACK> &barracas, vector<GUERREIRO> &guerreiro)
{
    if (!verificaSeHaAlgumaCoisa(x,y,vacas,arvores,aldeoes, townCenter, barracas, guerreiro))
    {
        switch (queObjeto)
        {
        case nVaca:
        {
            static float vacaVez = 0.1;
            VACA a (x , y, geraID(queObjeto), clock() + CLOCKS_PER_SEC * vacaVez);
            vacas.push_back (a);
            vacaVez += 0.1;
            break;
        }
        case nArvore:
        {
            ARVORE a (x , y, geraID(queObjeto));
            arvores.push_back (a);
            break;
        }
        case nAldeao:
        {
            CIDADAO a(x , y);
            aldeoes.push_back (a);
            break;
        }
        case nGuerreiro:
        {
            GUERREIRO a(x , y);
            guerreiro.push_back (a);
            break;
        }
        case nBarraca:
        {
            BARRACK a(x , y);
            barracas.push_back (a);
            break;
        }
        }
    }
    else
        return 0;

    return 1;
}
